<?php
/**
 * 栖岛账号个人资料页面
 */

// 如果直接访问此文件，则中止执行
if (!defined('ABSPATH')) {
    exit;
}

/**
 * 栖岛账号个人资料页面类
 */
class Qidao_Connect_Profile {
    /**
     * 构造函数
     */
    public function __construct() {
        // 添加个人资料页面字段
        add_action('show_user_profile', array($this, 'add_profile_fields'));
        add_action('edit_user_profile', array($this, 'add_profile_fields'));
        
        // 处理解绑请求
        add_action('admin_init', array($this, 'handle_unbind_request'));
        
        // 添加个人资料页面样式
        add_action('admin_enqueue_scripts', array($this, 'enqueue_profile_styles'));
    }
    
    /**
     * 添加个人资料页面字段
     */
    public function add_profile_fields($user) {
        // 检查用户是否已绑定栖岛账号
        if (!qidao_connect_is_bound($user->ID)) {
            ?>
            <h3><?php _e('栖岛账号', 'qidao-connect'); ?></h3>
            <table class="form-table">
                <tr>
                    <th><label><?php _e('绑定状态', 'qidao-connect'); ?></label></th>
                    <td>
                        <?php _e('未绑定栖岛账号', 'qidao-connect'); ?>
                        <p class="description">
                            <?php _e('您可以通过栖岛账号登录页面绑定栖岛账号。', 'qidao-connect'); ?>
                            <a href="<?php echo add_query_arg('qidao_action', 'oauth', home_url('/')); ?>" class="button button-secondary">
                                <?php _e('立即绑定', 'qidao-connect'); ?>
                            </a>
                        </p>
                    </td>
                </tr>
            </table>
            <?php
            return;
        }
        
        // 获取栖岛账号信息
        $qidao_user = qidao_connect_get_user_data($user->ID);
        
        if ($qidao_user) {
            ?>
            <h3><?php _e('栖岛账号', 'qidao-connect'); ?></h3>
            <table class="form-table">
                <tr>
                    <th><label><?php _e('绑定状态', 'qidao-connect'); ?></label></th>
                    <td>
                        <span class="qidao-bound"><?php _e('已绑定', 'qidao-connect'); ?></span>
                    </td>
                </tr>
                <tr>
                    <th><label><?php _e('栖岛昵称', 'qidao-connect'); ?></label></th>
                    <td><?php echo esc_html($qidao_user->nickname); ?></td>
                </tr>
                <tr>
                    <th><label><?php _e('栖岛头像', 'qidao-connect'); ?></label></th>
                    <td><img src="<?php echo esc_url($qidao_user->head_img); ?>" class="qidao-avatar" /></td>
                </tr>
                <tr>
                    <th><label><?php _e('绑定时间', 'qidao-connect'); ?></label></th>
                    <td><?php echo esc_html($qidao_user->datetime); ?></td>
                </tr>
                <tr>
                    <th><label><?php _e('操作', 'qidao-connect'); ?></label></th>
                    <td>
                        <a href="<?php echo wp_nonce_url(add_query_arg('qidao_action', 'unbind'), 'qidao_unbind', 'qidao_nonce'); ?>" class="button button-secondary" onclick="return confirm('<?php esc_attr_e('确定要解除栖岛账号绑定吗？解绑后将无法使用栖岛账号登录。', 'qidao-connect'); ?>')">
                            <?php _e('解除绑定', 'qidao-connect'); ?>
                        </a>
                        <p class="description"><?php _e('解除绑定后，将无法使用栖岛账号登录此账号。', 'qidao-connect'); ?></p>
                    </td>
                </tr>
            </table>
            <?php
        }
    }
    
    /**
     * 处理解绑请求
     */
    public function handle_unbind_request() {
        if (!isset($_GET['qidao_action']) || $_GET['qidao_action'] !== 'unbind') {
            return;
        }
        
        // 验证nonce
        if (!isset($_GET['qidao_nonce']) || !wp_verify_nonce($_GET['qidao_nonce'], 'qidao_unbind')) {
            wp_die(__('安全验证失败，请重试。', 'qidao-connect'));
        }
        
        // 获取当前用户ID
        $user_id = get_current_user_id();
        if (!$user_id) {
            wp_die(__('您必须登录才能执行此操作。', 'qidao-connect'));
        }
        
        // 解绑栖岛账号
        $result = qidao_connect_unbind($user_id);
        
        if ($result) {
            // 添加成功消息
            add_action('admin_notices', function() {
                ?>
                <div class="notice notice-success is-dismissible">
                    <p><?php _e('栖岛账号已成功解绑。', 'qidao-connect'); ?></p>
                </div>
                <?php
            });
        } else {
            // 添加错误消息
            add_action('admin_notices', function() {
                ?>
                <div class="notice notice-error is-dismissible">
                    <p><?php _e('解绑栖岛账号失败，请重试。', 'qidao-connect'); ?></p>
                </div>
                <?php
            });
        }
        
        // 重定向回个人资料页面
        wp_redirect(admin_url('profile.php'));
        exit;
    }
    
    /**
     * 添加个人资料页面样式
     */
    public function enqueue_profile_styles($hook) {
        if ($hook !== 'profile.php' && $hook !== 'user-edit.php') {
            return;
        }
        
        wp_enqueue_style('qidao-connect-profile', QIDAO_CONNECT_URL . 'assets/css/profile.css', array(), QIDAO_CONNECT_VERSION);
    }
} 